package com.xbongbong.paas.model;

import com.xbongbong.paas.domain.entity.PaasListGroupEntity;
import com.xbongbong.paas.domain.entity.ext.PaasListGroupEntityExt;

import java.util.List;
import java.util.Map;

/**
 * PAAS 流程设计类
 *
 * @author wufeng
 * @date 2018-8-8 9:47
 */
public interface PaasListGroupModel {

    /**
     * 插入实体
     *
     * @param entity 实体
     *
     * @return Integer MyBatis操作结果 1：成功
     */
    Integer insert(PaasListGroupEntity entity);

    /**
     *  查询列表
     * @author wufeng
     * @date 2018/8/13 16:07
     * @param entity 查询参数
     * @return java.util.List<ApplicationListVO>
     */
    List<PaasListGroupEntity> list(Map<String, Object> entity);

    /**
     *  查询列表
     * @author wufeng
     * @date 2018/8/13 16:07
     * @param corpid
     * @param appId
     * @param formId
     * @param userId
     * @param orderBy
     * @return java.util.List<ApplicationListVO>
     */
    List<PaasListGroupEntity> listByUserId(String corpid, Long appId, Long formId, String userId, String orderBy);



    /**
     * 查询实体
     * @param key 主键
     * @param corpid 公司id
     * @return PaasListGroupEntity
     */
    PaasListGroupEntity getByKey(Long key, String corpid);
    /**
     *  查询列表数量
     * @author wufeng
     * @date 2018/8/13 16:07
     * @param entity 查询参数
     * @return Integer
     */
    Integer getEntitysCount(Map<String, Object> entity);

    /**
     * 删除实体
     * @author wufeng
     * @date 2018/8/6 17:18
     * @param key 实体id
     * @param corpid 公司id
     * @return java.lang.Integer  mybatis操作结果，1：成功
     */
    Integer delete(Long key, String corpid);

    /**
     *  更新名字
     * @author wufeng
     * @date 2018/8/13 10:19
     * @param entity 实体
     * @return java.lang.Integer
     */
    Integer update(PaasListGroupEntity entity);

    /**
     * 排序
     * @param list 列表
     * @param corpid 公司id
     */
    void sort(List<PaasListGroupEntity> list, String corpid);

    /**
     * 批量插入
     * @param list list
     */
    void insertBatch(List<PaasListGroupEntity> list);

    /**
     * 获取列表分组
     *
     * @param params 查询参数
     * @author GuoJun.HU
     * @since V1.0
     * @return List<PaasListGroupEntityExt>
     * @date 2019/2/19 10:09
     */
    List<PaasListGroupEntityExt> listExt(Map<String,Object> params);
    
    /**
     * 删除编号为52的红冲退款分组
     * @return
     */
    Integer deleteByDefaultGroupCode();
}
